home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / MAXIT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  5.4 KB  |  288 lines

  1. 10  SCREEN 0
  2. 20  COLOR 7,0
  3. 30  WIDTH 80
  4. 40  KEY OFF
  5. 50  DEFINTA-Z
  6. 60  DATA49,51,53,54,56,58,60,61
  7. 70  RANDOMIZE VAL( MID$( TIME$ ,7,2))
  8. 80  FOR N% = 0 TO 7
  9. 90    READ NT%(N%)
  10. 100  NEXT
  11. 110  DIM BD%(7,7),AV%(64)
  12. 120  CLS
  13. 130  LOCATE 3,11
  14. 140  PRINT "THE GAME OF MAXIT"
  15. 150  PRINT "DO YOU WANT INSTRUCTIONS ? ";
  16. 160  GOSUB 2820
  17. 170  PRINT
  18. 180  IF KS$ = "Y" THEN GOSUB 2420
  19. 190  PRINT "1 OR 2 PLAYERS ?";
  20. 200  GOSUB 2820
  21. 210  PRINT KS$
  22. 220  NP% = VAL(KS$)
  23. 230  PRINT
  24. 240  IF NP% = 1 THEN 360
  25. 250  IF NP% < > 2 THEN 190
  26. 260  INPUT "WHAT IS YOUR NAME #1";P1$
  27. 270  P1$ = LEFT$(P1$,7)
  28. 280  BEEP
  29. 290  PRINT
  30. 300  PRINT
  31. 310  INPUT "WHAT IS YOUR NAME #2";P2$
  32. 320  P2$ = LEFT$(P2$,7)
  33. 330  BEEP
  34. 340  PRINT
  35. 350  GOTO 410
  36. 360  P2$ = "IBM PC"
  37. 370  INPUT "WHAT IS YOUR NAME ";P1$
  38. 380  BEEP
  39. 390  PRINT
  40. 400  P1$ = LEFT$(P1$,7)
  41. 410  CLS
  42. 420  LOCATE 2,16
  43. 430  PRINT "M A X I T"
  44. 440  GOSUB 2620
  45. 450  MD% = 1
  46. 460  FOR K% = 1 TO 64
  47. 470    AV%(K%) = K%
  48. 480  NEXT
  49. 490  FOR K% = 64 TO 1 STEP - 1
  50. 500    READ PC%
  51. 510    P1% = 1 + INT(K% * RND(1))
  52. 520    J% = AV%(P1%) - 1
  53. 530    IF P1% < K% THEN FOR I% = P1% TO K% - 1 : AV%(I%) = AV%(I% + 1) : NEXT
  54. 540    I% = INT(J% / 8)
  55. 550    J% = J% - 8 * I%
  56. 560    BD%(I%,J%) = PC%
  57. 570    GOSUB 1070
  58. 580    NT% = J%
  59. 590    GOSUB 2030
  60. 600  NEXT K%
  61. 610  RESTORE 660
  62. 620  NT% = 7
  63. 630  GOSUB 2030
  64. 640  GOSUB 2030
  65. 650  GOSUB 2030
  66. 660  DATA15,10,9,9,8,8,7,7,7,6,6,6
  67. 670  DATA5,5,5,5,4,4,4,4,3,3,3,3,3
  68. 680  DATA2,2,2,2,2,2,1,1,1,1,1
  69. 690  DATA0,0,0,0,0,0,-1,-1,-1,-1,-1
  70. 700  DATA-2,-2,-2,-2,-3,-3,-3
  71. 710  DATA-4,-4,-4,-5,-5,-6,-6
  72. 720  DATA-7,-9,100
  73. 730  S1% = 0
  74. 740  S2% = 0
  75. 750  GOSUB 2050
  76. 760  REM  PLAYER 1
  77. 770  PL% = 1
  78. 780  GOSUB 1170
  79. 790  IF FL% = 0 THEN 840
  80. 800  REM  PLAYER 2
  81. 810  PL% = 2
  82. 820  GOSUB 1170
  83. 830  IF FL% < > 0 THEN 760
  84. 840  LOCATE 22,1
  85. 850  PRINT STRING$(39," ");
  86. 860  LOCATE 22,1
  87. 870  ON 2 + SGN(S2% - S1%) GOSUB 990,1020,1040
  88. 880  LOCATE 23,1
  89. 890  PRINT STRING$(39," ");
  90. 900  LOCATE 23,1
  91. 910  PRINT "DO YOU WANT TO PLAY AGAIN ?";
  92. 920  C$ = ""
  93. 930  WHILE C$ = ""
  94. 940    C$ = INKEY$
  95. 950  WEND
  96. 960  PRINT C$
  97. 970  IF "Y" = C$ OR "y" = C$ THEN 410
  98. 980  END
  99. 990  PRINT P1$;" WON BY "; STR$(S1% - S2%);" POINTS"
  100. 1000  PRINT
  101. 1010  RETURN
  102. 1020  PRINT "IT'S A TIE !!                   "
  103. 1030  RETURN
  104. 1040  PRINT P2$;" WON BY "; STR$(S2% - S1%);" POINTS "
  105. 1050  PRINT
  106. 1060  RETURN
  107. 1070  REM  DRAW BOARD POSITION I,J IN MODE MD (1=RED,2=BLACK)
  108. 1080  PC% = BD%(I%,J%)
  109. 1090  LOCATE I% * 2 + 5,J% * 4 + 5
  110. 1100  IF MD% = 2 THEN COLOR 0,7 : GOTO 1120
  111. 1110  COLOR 7,0
  112. 1120  IF PC% = 100 THEN PRINT "**" : C1% = I% : C2% = J% : GOTO 1150
  113. 1130  IF PC% = - 100 THEN PRINT "  " : GOTO 1150
  114. 1140  PRINT RIGHT$("  " + STR$(PC%),2)
  115. 1150  COLOR 7,0
  116. 1160  RETURN
  117. 1170  IF PL% = 2 THEN 1280
  118. 1180  FL% = 600
  119. 1190  FOR J% = 0 TO 7
  120. 1200    FL% = FL% + BD%(C1%,J%)
  121. 1210  NEXT
  122. 1220  IF FL% = 0 THEN RETURN
  123. 1230  NM$ = P1$
  124. 1240  DX% = 1
  125. 1250  DY% = 0
  126. 1260  GOSUB 1380
  127. 1270  RETURN
  128. 1280  FL% = 600
  129. 1290  FOR I% = 0 TO 7
  130. 1300    FL% = FL% + BD%(I%,C2%)
  131. 1310  NEXT
  132. 1320  IF FL% = 0 THEN RETURN
  133. 1330  NM$ = P2$
  134. 1340  DX% = 0
  135. 1350  DY% = 1
  136. 1360  GOSUB 1380
  137. 1370  RETURN
  138. 1380  Y% = C1%
  139. 1390  X% = C2%
  140. 1400  FX% = 1
  141. 1410  IF PL% = 2 THEN COLOR 0,7
  142. 1420  IF NP% = 2 OR PL% = 1 THEN 1480
  143. 1430  PRINT
  144. 1440  GOSUB 2010
  145. 1450  PRINT NM$;"'S TURN.         "
  146. 1460  GOSUB 2140
  147. 1470  GOTO 1800
  148. 1480  GOSUB 2010
  149. 1490  ON FX% GOTO 1500,1550
  150. 1500  PRINT
  151. 1510  GOSUB 2010
  152. 1520  PRINT NM$;", YOUR TURN.     "
  153. 1530  PRINT
  154. 1540  GOTO 1570
  155. 1550  PRINT "                    "
  156. 1560  PRINT
  157. 1570  C$ = INKEY$
  158. 1580  IF C$ = "" THEN 1570  ELSE KS% = ASC(C$)
  159. 1590  IF C$ = CHR$(27) THEN 980
  160. 1600  IF C$ < > " " THEN 1780
  161. 1610  OX% = X%
  162. 1620  OY% = Y%
  163. 1630  Y% = Y% + DY%
  164. 1640  IF Y% > 7 THEN Y% = 0
  165. 1650  X% = X% + DX%
  166. 1660  IF X% > 7 THEN X% = 0
  167. 1670  PT% = BD%(Y%,X%)
  168. 1680  IF ABS(PT%) = 100 THEN 1630
  169. 1690  MD% = 1
  170. 1700  I% = OY%
  171. 1710  J% = OX%
  172. 1720  GOSUB 1070
  173. 1730  MD% = 2
  174. 1740  I% = Y%
  175. 1750  J% = X%
  176. 1760  GOSUB 1070
  177. 1770  GOTO 1570
  178. 1780  IF C$ < > CHR$(13) THEN 1570
  179. 1790  IF ABS(BD%(Y%,X%)) = 100 THEN 1570
  180. 1800  REM SCORE IT
  181. 1810  '
  182. 1820  IF NP% = 1 AND PL% = 2 THEN MD% = 2 : I% = Y% : J% = X% : GOSUB 1070 : FOR DL% = 1 TO 1500 : NEXT
  183. 1830  GOSUB 2040
  184. 1840  MD% = 1
  185. 1850  I% = C1%
  186. 1860  J% = C2%
  187. 1870  BD%(I%,J%) = - 100
  188. 1880  GOSUB 1070
  189. 1890  I% = Y%
  190. 1900  J% = X%
  191. 1910  PT% = BD%(I%,J%)
  192. 1920  BD%(I%,J%) = 100
  193. 1930  GOSUB 1070
  194. 1940  IF PL% = 1 THEN S1% = S1% + PT%
  195. 1950  IF PL% = 2 THEN S2% = S2% + PT%
  196. 1960  GOSUB 2010
  197. 1970  LOCATE 22,25
  198. 1980  PRINT "LAST TAKEN:";PT%;" ";
  199. 1990  GOSUB 2050
  200. 2000  RETURN
  201. 2010  LOCATE 22,1
  202. 2020  RETURN
  203. 2030  RETURN
  204. 2040  RETURN
  205. 2050  GOSUB 2010
  206. 2060  LOCATE 21,1
  207. 2070  ME$ = P1$ + "'S SCORE=" + STR$(S1%) + "  " + P2$ + "'S SCORE=" + STR$(S2%) + "       "
  208. 2080  ME$ = LEFT$(ME$,40)
  209. 2090  PRINT ME$
  210. 2100  RETURN
  211. 2110  REM  SCREEN INSTRUCTIONS
  212. 2120  RETURN
  213. 2130  '      COMPUTER PLAYER ALGORITHM
  214. 2140  MT% = - 100
  215. 2150  GG% = - 1
  216. 2160  FOR A1% = 0 TO 7
  217. 2170    PC% = BD%(A1%,C2%)
  218. 2180    IF ABS(PC%) = 100 THEN 2390
  219. 2190    MX% = - 100
  220. 2200    FOR A2% = 0 TO 7
  221. 2210      IF A2% < > C2% THEN PK% = BD%(A1%,A2%) : IF PK% < > - 100 AND PK% > MX% THEN MX% = PK% : SV% = A%
  222. 2220    NEXT A2%
  223. 2230    IF MX% < > - 100 THEN 2250
  224. 2240    IF PC% > MT% THEN MT% = PC% : GG% = A1% : GOTO 2390
  225. 2250    IF GG% < 0 THEN GG% = A1%
  226. 2260    FOR A2% = 0 TO 7
  227. 2270      PQ% = BD%(A2%,SV%)
  228. 2280      IF PQ% = - 100 OR A2% = A1% THEN 2380
  229. 2290      MY% = - 100
  230. 2300      FOR A3% = 0 TO 7
  231. 2310        PW% = BD%(A2%,A3%)
  232. 2320        IF A3% = SV% THEN 2340
  233. 2330        IF ABS(PW%) < > 100 AND PW% > MY% THEN MY% = PW%
  234. 2340      NEXT A3%
  235. 2350      IF MY% = - 100 THEN MY% = 0
  236. 2360      DT% = PC% - MX% + PQ% - MY%
  237. 2370      IF DT% > MT% THEN MT% = DT% : GG% = A1%
  238. 2380    NEXT A2%
  239. 2390  NEXT A1%
  240. 2400  Y% = GG%
  241. 2410  RETURN
  242. 2420  LOCATE 1,16
  243. 2430  PRINT "M A X I T"
  244. 2440  PRINT
  245. 2450  PRINT "THE OBJECT OF MAXIT IS TO GET AS MANY"
  246. 2460  PRINT "POINTS AS POSSIBLE. TWO PLAYERS CAN"
  247. 2470  PRINT "PLAY AGAINST EACH OTHER, OR ONE AGAINST"
  248. 2480  PRINT "THE COMPUTER."
  249. 2490  PRINT
  250. 2500  PRINT
  251. 2510  PRINT "YOU GET POINTS BY MOVING A MARKER "
  252. 2520  PRINT "            **"
  253. 2530  PRINT "TO A SPACE WITH A NUMBER IN IT. THE"
  254. 2540  PRINT "FIRST PLAYER ALWAYS MOVES HORIZONTALLY"
  255. 2550  PRINT "AND THE SECOND MOVES VERTICALLY.  YOU"
  256. 2560  PRINT "INDICATE THE PLACE YOU WANT TO MOVE TO"
  257. 2570  PRINT "BY USING THE SPACE BAR TO POSITION"
  258. 2580  PRINT "YOURSELF, AND THEN PUSH RETURN TO TAKE"
  259. 2590  PRINT "THAT PIECE."
  260. 2600  RETURN
  261. 2610  END
  262. 2620  REM  OTHER OTHELLO BOARD
  263. 2630  '
  264. 2640  TOP$ = "ERRTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENOPTION"
  265. 2650  MD1$ = "CALL   CALL   CALL   CALL   CALL   CALL   CALL   CALL   CALL"
  266. 2660  MD2$ = "PSETTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHEN<0xB5!>"
  267. 2670  BOT$ = "ERLTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSAVE"
  268. 2680  LOCATE 4,4
  269. 2690  PRINT TOP$
  270. 2700  FOR Y% = 5 TO 17 STEP 2
  271. 2710    LOCATE Y%,4
  272. 2720    PRINT MD1$
  273. 2730    LOCATE Y% + 1,4
  274. 2740    PRINT MD2$
  275. 2750  NEXT
  276. 2760  LOCATE 19,4
  277. 2770  PRINT MD1$
  278. 2780  LOCATE 20,4
  279. 2790  PRINT BOT$
  280. 2800  GOSUB 2110
  281. 2810  RETURN
  282. 2820  KS$ = ""
  283. 2830  WHILE KS$ = ""
  284. 2840    KS$ = INKEY$
  285. 2850  WEND
  286. 2860  KS% = ASC(KS$)
  287. 2870  RETURN
  288.